﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using CondominioWeb.Persistencia.NHibernate;
using CondominioWeb.Dominio;

namespace CondominioWeb.Pruebas
{
    [TestFixture]
    public class TestTipo_Area_ComunDAO
    {
        private Tipo_Area_ComunDAO tipo_Area_ComunDAO = new Tipo_Area_ComunDAO();
        [Test]
        public void TestCrear()
        {            
            
            // 1. Instanciando el objeto TO
            Tipo_Area_Comun nuevoTipo_Area_Comun = new Tipo_Area_Comun();
            nuevoTipo_Area_Comun.Codigo_Area_Comun = 2;
            nuevoTipo_Area_Comun.Descripcion = "Cancha de fulbito";
            nuevoTipo_Area_Comun.Estado = "activo";
            // 2. Llamada al método del DAO a probar
            Tipo_Area_Comun Tipo_Area_ComunCreado = tipo_Area_ComunDAO.Crear(nuevoTipo_Area_Comun);
            // 4. Implementar las validaciones
            Assert.NotNull(Tipo_Area_ComunCreado);
            Assert.AreEqual(nuevoTipo_Area_Comun.Codigo_Area_Comun, Tipo_Area_ComunCreado.Codigo_Area_Comun);            
        }

        [Test]
        public void TestModificar()
        {

            // 1. Instanciando el objeto TO
            Tipo_Area_Comun nuevoTipo_Area_Comun = new Tipo_Area_Comun();
            nuevoTipo_Area_Comun.Codigo_Area_Comun = 2;
            nuevoTipo_Area_Comun.Descripcion = "Cancha de fulbito A";
            nuevoTipo_Area_Comun.Estado = "activo";
            // 2. Llamada al método del DAO a probar
            Tipo_Area_Comun Tipo_Area_ComunCreado = tipo_Area_ComunDAO.Modificar(nuevoTipo_Area_Comun);
            // 4. Implementar las validaciones
            Assert.NotNull(Tipo_Area_ComunCreado);
            Assert.AreEqual(nuevoTipo_Area_Comun.Codigo_Area_Comun, Tipo_Area_ComunCreado.Codigo_Area_Comun);
        }


        [Test]
        public void TestObtener()
        {
            int _cod_TipoAreaComun;
            // 1. Instanciando el objeto TO
            // 2. Llamada al método del DAO a probar
            _cod_TipoAreaComun = 1;
            Tipo_Area_Comun TipoAreaComunConsulta = tipo_Area_ComunDAO.Obtener(_cod_TipoAreaComun);

            // 4. Implementar las validaciones
            Assert.NotNull(TipoAreaComunConsulta);
            Assert.AreEqual(TipoAreaComunConsulta.Codigo_Area_Comun, _cod_TipoAreaComun);
            Assert.IsNotNull(TipoAreaComunConsulta.Descripcion);
        }


        [Test]
        public void TestEliminar()
        {
            // 1. Instanciando el objeto TO
            Tipo_Area_Comun oTipoAreaComun = new Tipo_Area_Comun();
            oTipoAreaComun.Codigo_Area_Comun = 1;
            // 2. Llamada al método del DAO a probar
            Assert.Catch<Exception>(delegate
            {
                tipo_Area_ComunDAO.Eliminar(oTipoAreaComun);
            });
            Assert.DoesNotThrow(delegate
            {
                tipo_Area_ComunDAO.Eliminar(oTipoAreaComun);
            });

            // 3. Implementar las validaciones
            Assert.NotNull(oTipoAreaComun);
            Assert.NotNull(oTipoAreaComun.Codigo_Area_Comun);

        }

    }
}